package com.fatcat.easybuy.service;


import com.fatcat.easybuy.pojo.EasyBuyProduct;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * @author Fatcat
 * @description 针对表【easybuy_product】的数据库操作Service
 * @createDate 2025-09-10 11:01:40
 */
public interface EasyBuyProductService {
    //获取所有商品
    PageInfo<EasyBuyProduct> getAllProduct(Map<String, Object> params);

    //根据id列表获取商品列表  批量查询商品
    List<EasyBuyProduct> getProductsByIds(List<Long> productIds);

    //添加商品
    boolean addProduct(EasyBuyProduct product);

    //更新商品
    boolean updateProduct(EasyBuyProduct product);

    //删除商品
    boolean deleteProduct(Long id);

    //根据id获取商品
    EasyBuyProduct getProductById(Long id);

    //添加收藏
    boolean addFavorite(Long userId, Long productId);

    //获取收藏
    List<Long> getFavoriteList(Long userId);

    //删除收藏
    boolean deleteFavorite(Long userId, Long productId);

    //检查商品是否被收藏
    boolean isProductNotFavorited(Long userId, Long productId);

    //批量更新商品临时库存
    boolean updateProductTempStockByOutOrderNo(String outOrderNo);

    //批量回滚商品临时库存
    boolean updateProductTempStockRollbackByOutOrderNo(String outOrderNo);

    //批量更新商品正式库存
    boolean updateProductStockByOutOrderNo(String outOrderNo);

    //回滚正式库存
    boolean updateProductStockRollbackByOutOrderNo(String outOrderNo);

    //检查一级分类下是否存在商品
    boolean checkExitProductOfLevel1(Long id);

    //检查二级分类下是否存在商品
    boolean checkExitProductOfLevel2(Long id);

    //检查三级分类下是否存在商品
    boolean checkExitProductOfLevel3(Long id);
}
